#import <Foundation/Foundation.h>

int main (int argc, char *argv[])
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    NSData       *data;
    NSMutableArray  *dataArray = [NSMutableArray arrayWithObjects:
         [NSMutableString stringWithString: @"jeden"],
         [NSMutableString stringWithString: @"dwa"],
         [NSMutableString stringWithString: @"trzy"],
         nil
    ];

    NSMutableArray   *dataArray2;
    NSMutableString  *mStr;

    // Wykonanie kopii gbokiej przy uyciu archiwizatora

    data = [NSKeyedArchiver archivedDataWithRootObject: dataArray];
    dataArray2 = [NSKeyedUnarchiver unarchiveObjectWithData: data];

    mStr = [dataArray2 objectAtIndex: 0];
    [mStr appendString: @"JEDEN"];

    NSLog (@"dataArray: ");
    for ( NSString *elem in dataArray )
        NSLog (@"%@", elem);

    NSLog (@"\ndataArray2: ");
    for ( NSString *elem in dataArray2 )
        NSLog (@"%@", elem);

    [pool drain];
    return 0;
}